ВГОРУ

SQL Joins

SQL JOIN

Вираз JOIN використовується для об’єднання рядків із двох або більше таблиць на основі зв’язаного стовпця між ними.


Подивимося на вибірку із таблиці "Orders" ("Замовлення"):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082

Потім перегляньте вибірку із таблиці "Customers" ("Клієнти"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico

Зауважте, що стовпець "CustomerID" у таблиці "Orders" відноситься до "CustomerID" у таблиці "Customers". Зв’язок між двома таблицями вище – це стовпець "CustomerID".

Tоді ми можемо створити таку SQL-інструкцію (що містить INNER JOIN), яка вибирає записи, що мають відповідні значення в обох таблицях:

Run SQLSELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID

і це дасть щось подібне:

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados1996-09-18
10365Antonio Moreno Taquería1996-11-27
10355Around the Horn1996-11-15
10383Around the Horn1996-12-16
10289B's Beverages1996-08-26

Різні типи SQL JOIN

Ось різні типи JOIN у SQL:

  • (INNER) JOIN: Повертає записи, які мають відповідні значення в обох таблицях
  • LEFT (OUTER) JOIN: Повертає всі записи з лівої таблиці та відповідні записи з правої таблиці
  • RIGHT (OUTER) JOIN: Повертає всі записи з правої таблиці та відповідні записи з лівої таблиці
  • FULL (OUTER) JOIN: Повертає всі записи, якщо є відповідність у лівій або правій таблиці


  • SQL INNER JOIN  SQL LEFT JOIN  SQL RIGHT JOIN  SQL FULL OUTER JOIN